/*
 * SensorsLoader.h
 *
 *  Created on: Feb 2, 2009
 *      Author: Andrzej Olchawa
 *      mailto: andrzejolchawa@gmail.com
 *      http://www.hardtechnology.org
 *      This is a part of the Armazd project, which is covered by
 *      GNU GPL v2 license.
 */

#ifndef SENSORSLOADER_H_
#define SENSORSLOADER_H_

/* Include section */
#include <iostream>
#include <string>
#include <list>
#include <fstream>

#include "Sensor.h"
#include "AgentUtils.h"
#include "AgentException.h"
#include "AgentConfiguration.h"
#include "HTFramework/HTProperties.h"
#include "HTFramework/HTPropertiesElement.h"

/* namespace declaration */
using namespace std;

/* SensorsLoader class definition */
class SensorsLoader
{

private:

	/* Variables related with sensors */
	list<Sensor*>  *listOfSensors;
	string sensorsLocation;

public:

	/* Constructors and destructor */
	SensorsLoader();
	virtual ~SensorsLoader();

	/* Getters and setters */
	list<Sensor*> *getListOfSensors();
	string 		   getSensorsLocation();

	list<Sensor*> *setListOfSensors(list<Sensor*> *);
	void setSensorsLocation(string);

	/* Functions related with modules loading */
	void loadSensors();
	list<Sensor*> *loadSensors(list<Sensor*> *);
	void destroySensors();

};

#endif /* SENSORSLOADER_H_ */
